package 设计模式.创建型模式.demo03生成器模式;

import 设计模式.创建型模式.demo03生成器模式.builders.CarBuilder;
import 设计模式.创建型模式.demo03生成器模式.builders.CarManualBuilder;
import 设计模式.创建型模式.demo03生成器模式.cars.Car;
import 设计模式.创建型模式.demo03生成器模式.cars.Manual;
import 设计模式.创建型模式.demo03生成器模式.director.Director;

/**
 * @author: 王富贵
 * @description: 主启动类
 * @createTime: 2022/11/07 14:37
 */
public class Application {
    public static void main(String[] args) {
        Director director = new Director();

        // 主管模板创建固定的汽车对象
        CarBuilder builder = new CarBuilder();
        director.constructSportsCar(builder);
        Car car = builder.getResult();
        System.out.println("Car built:\n" + car.getCarType());

        //汽车手册也能够创建出来
        CarManualBuilder manualBuilder = new CarManualBuilder();

        director.constructSportsCar(manualBuilder);
        Manual carManual = manualBuilder.getResult();
        System.out.println("\nCar manual built:\n" + carManual.print());
    }
}
